\documentclass[%
    %draft,
    %submission,
    %compressed,
    a4paper,
    %12pt,
    9pt,
    final,
    %technote,
    %internal,
    %submitted,
    %inpress,
    %reprint,
    %titlepage,
    notitlepage,
    %anonymous,
    narroweqnarray,
    inline,
    oneside,
    %invited,
    %conference
    article
    ]{ieee}

%\documentclass[a4paper,11pt]{article}
\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{graphicx}
\usepackage{epsfig}
\usepackage{epstopdf}

\newcommand{\latexiie}{\LaTeX2{\Large$_\varepsilon$}}

%\usepackage{ieeetsp}    % if you want the "trans. sig. pro." style
%\usepackage{ieeetc}    % if you want the "trans. comp." style
%\usepackage{ieeeimtc}    % if you want the IMTC conference style

% Use the `endfloat' package to move figures and tables to the end
% of the paper. Useful for `submission' mode.

%\usepackage {endfloat}

% Use the `times' package to use Helvetica and Times-Roman fonts
% instead of the standard Computer Modern fonts. Useful for the
% IEEE Computer Society transactions.
%\usepackage{times}
% (Note: If you have the commercial package `mathtime,' (from
% y&y (http://www.yandy.com), it is much better, but the `times'
% package works too). So, if you have it...
%\usepackage {mathtime}

% for any plug-in code... insert it here. For example, the CDC style...
%\usepackage{ieeecdc}

\begin{document}

\title[]{
	Entrega Preliminar II\\
	Perceptr\'on Simple}

\author{
     Luciano Mangiarotti (I.T.B.A),
\and Federico Santos (I.T.B.A),
\and Jimena Pose (I.T.B.A) \\ \\ }

\maketitle

\section{Introducci\'on}

\noindent El objetivo de este trabajo es analizar el comportamiento de un perceptrón 
simple. Para esto, se implementa y entrena dicho perceptrón para que aprenda las 
operaciones lógicas AND y OR para distinta cantidad de unidades de entrada.

\noindent Para analizar el aprendizaje se utilizan distintas funciones de transferencia 
y se evalúa el impacto de las mismas en la cantidad de épocas necesarias para 
alcanzar la cota de error indicada.

\noindent En la Sección 2 se plantean los detalles de la implementación. En la 
Sección 3 se presentan los resultados con sus correspondientes conclusiones.

\section{Consideraciones de implementación}

\noindent Se implementa un perceptrón simple con N unidades de entrada, 
donde $2 \le N \le 5$, y una unidad de salida. Se entrena dicho perceptrón 
para que aprenda las operaciones AND y OR.

\noindent El conjunto de patrones de entrenamiento est\'a formado por todas las 
entradas de la tabla de verdad de cada una de las operaciones. Estos patrones 
se presentan aleatoriamente, mezclándolos en cada época.

\noindent El método que se utiliza para la actualización de los pesos de la red es el 
incremental, donde cada actualización se realiza al presentar cada patrón.

\section{Resultados y Conclusiones}

\noindent En esta sección se muestran los resultados obtenidos durante el entrenamiento 
del perceptrón. El valor de la constante de proporcionalidad de aprendizaje utilizada 
es $\eta = 0.5$ y la cota de error es $E= 0.001$.  Si esta cota no es alcanzada, el 
algoritmo termina luego de $50000$ \'epocas.

\subsection{Función Escalón}

\noindent Usando la función $g(h) = sign(h)$, se entrena satisfactoriamente al 
perceptrón para que aprenda las operaciones lógicas AND y OR mostrando los 
resultados en la Tabla \ref{tab:tabla1}.

\noindent Se observa que converge r\'apidamente y el error es nulo en todos 
los casos, ya que es suficiente con que el signo de la suma pesada de una 
neurona coincida con el del valor esperado. As\'i, la salida obtenida 
coincide con la esperada en todos los patrones una vez 
finalizado el entrenamiento.

\subsection{Función Lineal}

\noindent La función lineal que se usa como transferencia es $ g(h) = \beta h $. La 
red se entrena inicialmente usando $ \beta = 1 $ y $ \eta = 0.5 $. En este caso el 
error diverge. Esto es posible ya que la funci\'on de activaci\'on no est\'a 
acotada.

\noindent Cuando se entrena la red con $ \beta = 1 $ y $ \eta = 0.1 $ el error 
permanece estabilizado en un rango acotado de valores. Los resultados se 
muestran en la Tabla \ref{tab:tabla2}.

\noindent En este caso, el entrenamiento siempre termina porque se alcanza la 
cantidad m\'axima de epocas permitidas generando resultados que no son del 
todo satisfactorios.

\noindent La red no logra aprender las operaciones AND y OR con la cota de error 
exigida. El error oscila y no logra converger. Esto se puede observar en la Figura 
\ref{g1}, que muestra el error en función de la cantidad de épocas para $N=5$.

\noindent Realizando los c\'alculos manualmente, usando $g(h) = h$ y $N = 2$ 
obtenemos el siguiente sistema de ecuaciones:

\begin{equation}
	-w_0-w_1-w_2 = -1
\end{equation}
\begin{equation}
	-w_0-w_1+w_2 = -1
\end{equation}
\begin{equation}
	-w_0+w_1-w_2 = -1
\end{equation}
\begin{equation}
	-w_0+w_1+w_2 = 1
\end{equation}


\noindent siendo $w_0$ el peso de la conexi\'on sin\'aptica entre la neurona de salida 
y la entrada umbral.

\noindent Combinando las ecuaciones (1) y (4) se obtiene $ w_1 = 0 $ y combinando 
las ecuaciones (3) y (4) se obtiene $ w_2 = 1 $. Reemplazando estos resultados en 
la ecuaci\'on (4) se obtiene $ w_0 = 0 $, pero con estos valores la segunda 
ecuaci\'on no se cumple.

\noindent De esta forma, se muestra que no es posible encontrar una soluci\'on 
para $[w_0 w_1 w_2]$. \\

\subsection{Funciones No Lineales}

\noindent Tambi\'en se utilizan las funciones no lineales, tangente hiperb\'olica (1) y 
exponencial (2), como función de transferencia.
\begin{equation}
	g(h) = \tanh (\beta h)
\end{equation}
\begin{equation}
	g(h) = \frac{1}{1 + e^{-2 \beta h}}
\end{equation}

\noindent Para el entrenamiento se usa el parámetro $\beta = 1$ en ambos casos, 
mostrando los resultados en las tablas \ref{tab:tabla3} y \ref{tab:tabla4}.

\noindent Los gr\'aficos \ref{g2} y \ref{g3} muestran el error en función de la cantidad 
de \'epocas cuando $N = 5$, para las dos funciones de activaci\'on. El primer gr\'afico 
corresponde a la funci\'on l\'ogica AND y el segundo al OR. Se observa que en ambos 
casos, el error va convergiendo asint\'oticamente hasta alcanzar la cota fijada. 

\noindent La principal ventaja que tienen estas funciones de activaci\'on es que 
est\'an acotadas. Aún así, se observa que se requieren m\'as \'epocas para obtener resultados 
satisfactorios, comparado con la funci\'on escal\'on.


%\begin{table*}
%	\centering
%   	\begin{tabular}{c c c c}
%   	\hline
%    	\hline
%	\textbf{Entradas} & \textbf{Funcion de activaci\'on } & \textbf{Cantidad de epocas} & \textbf{Error obtenido} \\
%	& $g(h)$ &  & \\
%	\hline
%	\hline
%		2 & exp & 23538 & 0.000999963 \\
%		2 & tanh & 3943 & 0.000999918 \\
%		3 & exp & 50767 & 0.000999983 \\
%		3 & tanh & 9139 & 0.000999986 \\
%		4 & exp & 88900 & 0.00099999 \\
%		4 & tanh & 16920 & 0.000999963 \\
%		5 & exp & 140420 & 0.000999993 \\
%		5 & tanh & 27283 & 0.000999985 \\
%	\hline
%	\end{tabular}
%	\caption{Resultados del aprendizaje del AND l\'ogico usando las distintas funciones de activaci\'on.}
%	\label{tab:tabla1}
%\end{table*}

%\begin{table*}
%	\centering
%   	\begin{tabular}{c c c c}
%    	\hline
%    	\hline
%	\textbf{Entradas} & \textbf{Funcion de activaci\'on } & \textbf{Cantidad de epocas} & \textbf{Error obtenido} \\
%	& $g(h)$ &  & \\
%	\hline
%	\hline
%		2 & exp & 12590 & 0.000999932 \\
%		2 & tanh & 3943 & 0.000999892 \\
%		3 & exp & 18042 & 0.000999971 \\
%		3 & tanh & 9140 & 0.000999892 \\ 
%		4 & exp & 23487 & 0.000999961 \\
%		4 & tanh & 16920 & 0.000999956 \\
%		5 & exp & 28925 & 0.000999973 \\
%		5 & tanh & 27283 & 0.001 \\
%	\hline
%	\end{tabular}
%	\caption{Resultados del aprendizaje del OR l\'ogico usando las distintas funciones de activaci\'on.}
%	\label{tab:tabla2}
%\end{table*}


% ESCALON 


\begin{table*}
	\centering
    	\begin{tabular}{c c c c}
    	\hline
    	\hline
	\textbf{Entradas} & \textbf{Operacion logica} & \textbf{Cantidad de epocas} & \textbf{Error obtenido} \\
	\hline
	\hline
		2 & AND & 1 & 0 \\
		2 & OR & 2 & 0 \\
		3 & AND & 2 & 0 \\
		3 & OR &  3 & 0 \\
		4 & AND & 2 & 0 \\
		4 & OR &  2 & 0 \\
		5 & AND & 2 & 0 \\
		5 & OR & 7 & 0 \\  
	\hline
	\end{tabular}
	\caption{Resultados del aprendizaje usando la funcion escalon.}
	\label{tab:tabla1}
\end{table*}

\begin{table*}
	\centering
    	\begin{tabular}{c c c c}
    	\hline
    	\hline
	\textbf{Entradas} & \textbf{Operacion logica} & \textbf{Cantidad de epocas} & \textbf{Error obtenido} \\
	\hline
	\hline
		2 & AND & 50000 & 0.501218 \\
		2 & OR & 50000 & 0.502714 \\
		3 & AND & 50000 & 1.0221 \\
		3 & OR & 50000 & 1.01467 \\ 
		4 & AND & 50000 & 1.44576 \\
		4 & OR & 50000 & 1.66023 \\
		5 & AND & 50000 & 1.95359 \\
		5 & OR & 50000 & 1.88573 \\
	\hline
	\end{tabular}
	\caption{Resultados del aprendizaje usando la funcion lineal.}
	\label{tab:tabla2}
\end{table*}

\begin{table*}
	\centering
    	\begin{tabular}{c c c c}
    	\hline
    	\hline
	\textbf{Entradas} & \textbf{Funcion de activacion } & \textbf{Cantidad de epocas} & \textbf{Error obtenido} \\
	& $g(h)$ &  & \\
	\hline
	\hline
		2 & exp & 2323 & 0.000999701 \\
		2 & tanh & 383 & 0.000999848 \\
		3 & exp & 4996 & 0.000999853 \\
		3 & tanh & 886 & 0.000999841 \\
		4 & exp & 8737 & 0.000999894 \\
		4 & tanh & 1627 & 0.000999548 \\
		5 & exp & 13806 & 0.000999957 \\
		5 & tanh & 2631 & 0.000999685 \\
	\hline
	\end{tabular}
	\caption{Resultados del aprendizaje del AND logico usando las distintas funciones de activacion.}
	\label{tab:tabla3}
\end{table*}

\begin{table*}
	\centering
    	\begin{tabular}{c c c c}
    	\hline
    	\hline
	\textbf{Entradas} & \textbf{Funcion de activacion } & \textbf{Cantidad de epocas} & \textbf{Error obtenido} \\
	& $g(h)$ &  & \\
	\hline
	\hline
		2 & exp & 1249 & 0.000999557 \\
		2 & tanh & 385 & 0.000998202 \\
		3 & exp & 1793 & 0.000999749 \\
		3 & tanh & 892 & 0.000998883 \\ 
		4 & exp & 2335 & 0.0009997 \\
		4 & tanh & 1641 & 0.000999711 \\
		5 & exp & 2887 & 0.000999978 \\
		5 & tanh & 2603 & 0.000999889 \\
	\hline
	\end{tabular}
	\caption{Resultados del aprendizaje del OR logico usando las distintas funciones de activacion.}
	\label{tab:tabla4}
\end{table*}

\begin{figure*}
        \centering
		\includegraphics[scale=0.5]{figure3c.png}
        \caption{Grafico comparativo acerca del aprendizaje de las operaciones AND y OR haciendo uso de la funcion de activacion lineal}
        \label{g1}
\end{figure*}

\begin{figure*}
        \centering
		\includegraphics[scale=0.5]{figure1b.png}
        \caption{Grafico comparativo acerca del aprendizaje de la operacion AND haciendo uso de ambas funciones de activacion no lineales}
        \label{g2}
\end{figure*}

\begin{figure*}
        \centering
		\includegraphics[scale=0.5]{figure2b.png}
        \caption{Grafico comparativo acerca del aprendizaje de la operacion OR haciendo uso de ambas funciones de activacion no lineales}
        \label{g3}
\end{figure*}

\end{document}
